package lc.smart.android.main;

import java.net.URLEncoder;

import lc.smart.android.helper.BaseConfigHelper;
import lc.smart.android.net.MyNetWork;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
import android.widget.Toast;

public class WebViewActivity extends Activity
{

	public static final String TAG_STRING = "WebViewActivity";//标识
	private Context mContext;
	private WebView webView;

	private WebSettings settings;

	final String mimeType = "text/html";
	final String encoding = "UTF-8";

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);

		mContext = this;

		setContentView(R.layout.activity_web_view);
		webView = (WebView) findViewById(R.id.webview_activity);
		//对webView进行设置

		setWebView();

		getWebData();
		//		DisplayMetrics metrics = new DisplayMetrics();
		//		getWindowManager().getDefaultDisplay().getMetrics(metrics);
		//		int mDensity = metrics.densityDpi;
		//
		//		if (mDensity == 120)
		//		{
		//			settings.setDefaultZoom(ZoomDensity.CLOSE);
		//		}
		//		else if (mDensity == 160)
		//		{
		//			settings.setDefaultZoom(ZoomDensity.MEDIUM);
		//		}
		//		else
		//		//if (mDensity == 240)
		//		{
		//			settings.setDefaultZoom(ZoomDensity.FAR);
		//		}
		//		webView.setInitialScale(97);
		//  
		//webHtml();  
		//  
		//webImage();  
		//  
		localHtmlZh();
		//  
		//localHtmlBlankSpace();  
		//  
		//localHtml();  
		//  
		// localImage();  
		//  
	}

	public void setWebView()
	{
		if (SmartApplication.is_DubugMode)
		{
			Log.v(TAG_STRING, "setWebView called!");
		}

		settings = webView.getSettings();
		// NORMAL：正常显示，没有渲染变化。 
		//SINGLE_COLUMN：把所有内容放到WebView组件等宽的一列中。
		//NARROW_COLUMNS：可能的话，使所有列的宽度不超过屏幕宽度。
		settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
		//4.0解决中文乱码问题
		//settings.setTextSize(WebSettings.TextSize.LARGEST);
		settings.setDefaultFontSize(18);
		//settings.setTextSize(FONT_SIZES[3]);
		//settings.setBuiltInZoomControls(true);

		//webView.getSettings().setJavaScriptEnabled(true);
		//设置加载进来的页面自适应手机屏幕
		//settings.setUseWideViewPort(true);
		//settings.setLoadWithOverviewMode(true);

		//settings.setBlockNetworkImage(true);
		//settings.setRenderPriority(WebSettings.RenderPriority.HIGH);

	}

	private void getWebData()
	{
		if (SmartApplication.is_DubugMode)
		{
			Log.v(TAG_STRING, "getWebData called!");
		}

		new Thread()
		{
			public void run()
			{
				//1、检查网络环境
				String isNetWorkString = MyNetWork.isNetworkAvailable(mContext);
				if (isNetWorkString == null)
				{
					Message msg = new Message();
					msg.what = BaseConfigHelper.Msg_Net_Disable;
					mHandler.sendMessage(msg);
					return;
				}

				//进行网络访问请求

				//获取网络返回数据

				//发消息通知

			}
		}.start();
	}

	private Handler mHandler = new Handler()
	{
		@Override
		public void handleMessage(Message msg)
		{
			if (SmartApplication.is_DubugMode)
			{
				Log.i(TAG_STRING, "-----------handleMessage:" + msg);
			}
			if (BaseConfigHelper.Msg_Test == msg.what)
			{
				showMessage("此消息属于测试消息！");
			}
			else if (BaseConfigHelper.Msg_Net_Disable == msg.what)
			{
				showMessage("请设置当前手机网络环境！");
			}
			else if (BaseConfigHelper.Msg_Service_Disable == msg.what)
			{
				showMessage("服务器繁忙，请稍后重试！");
			}
			else if (BaseConfigHelper.Msg_NetData_Result == msg.what)
			{

			}

		}
	};

	/** 
	 * 直接网页显示 
	 */
	private void webHtml()
	{
		try
		{
			webView.loadUrl("http://www.google.com");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/** 
	 * 直接网络图片显示 
	 */
	private void webImage()
	{
		try
		{
			webView.loadUrl("http://www.gstatic.com/codesite/ph/images/code_small.png");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/** 
	 * 中文显示 
	 */
	private void localHtmlZh()
	{
		try
		{
			String data = "<font face=\"微软雅黑\"> 《中共中央关于全面深化改革若干重大问题的决定》终于公布，"
					+ "决定涉及社会生活的各个方面。假如有一位私企老板，中央的新决定能给他和他的企业带来什么变化呢？"
					+ " </font> <img src=\"http://www.pinggu.org/uploadfile/image/20131120/20131120143534_91562.jpg\""
					+ " onload=\"thumbImg(this)\"    alt=\"\" /> <font face=\"微软雅黑\">1. 攒下的家业终于明确“不受侵犯” "
					+ "三中全会决议：公有制经济财产权不可侵犯，非公有经济财产权同样不可侵犯。"
					+ " 2. ZF管得越来越少 三中全会决议：凡是能由市场形成价格的都交给市场，ZF不进行不当干预。"
					+ "市场机制能有效调节的经济活动，一律取消审批。 "
					+ "3. 以后不用怕和国企竞争 三中全会决议：实行统一的市场准入制度，"
					+ "在制定负面清单基础上，各类市场主体可依法平等进入清单之外领域。"
					+ " 4. 炒房子的钱或要挪来做实业 三中全会决议：逐步建立综合与分类相结合的个人所得税制。"
					+ "加快房地产税立法并适时推进改革。 5. 创新全得靠自己了 三中全会决议：加强知识产权运用和保护，"
					+ "健全技术激励机制，探索建立知识产权法院。 6. 老年员工估计要越来越多 三中全会决议："
					+ "适时适当降低社会保险费率。研究制定渐进式延迟退休年龄政策。加快健全社会保障管理体制和经办服务体系。"
					+ "</font> <img src=\"http://www.pinggu.org/uploadfile/image/20131120/20131120143637_80587.png\"  "
					+ "onload=\"thumbImg(this)\" alt=\"\" /> <div class=\"quote\"><blockquote><font size=\"4\">"
					+ "<font color=\"dimgray\"><strong>以下内容为作者解读</strong>：</font></font></blockquote></div> "
					+ "据一位企业负责人介绍，对于像他们这样一直依靠“单打独斗”的私营企业来说，"
					+ "十八届三中全会上对非共有制经济的空前肯定，也让他们对国家政策更关注、对企业未来更期待。"
					+ "会议首次提出的“个体、私营等非公有制经济是促进我国社会生产力发展的重要力量”，也让企业感觉到了"
					+ "前所未有的发展机遇。";
			// utf-8编码处理(在SDK1.5模拟器和真实设备上都将出现乱码,SDK1.6上能正常显示)  
			//webView.loadData(data, mimeType, encoding);  
			// 对数据进行编码处理(SDK1.5版本)  
			//			webView.loadData(URLEncoder.encode(data, encoding), mimeType,
			//					encoding);
			webView.loadDataWithBaseURL("about:blank", data, mimeType,
					encoding, "");

		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	public static final TextSize[] FONT_SIZES = new TextSize[] {

	TextSize.SMALLER,

	TextSize.NORMAL,

	TextSize.LARGER

	};

	public enum TextSize
	{

		SMALLEST(50),

		SMALLER(75),

		NORMAL(100),

		LARGER(150),

		LARGEST(200);

		int value;

		TextSize(int size)
		{

			this.value = size;

		}
	}

	/** 
	 * 中文显示(空格的处理) 
	 */
	private void localHtmlBlankSpace()
	{
		try
		{
			String data = "      测试含有空格的Html数据    ";
			// 不对空格做处理  
			webView.loadData(URLEncoder.encode(data, encoding), mimeType,
					encoding);
			//webView.loadData(data, mimeType, encoding);  
			// 对空格做处理(在SDK1.5版本中)  
			webView.loadData(
					URLEncoder.encode(data, encoding).replaceAll("\\+", " "),
					mimeType, encoding);
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/** 
	 * 显示本地图片文件 
	 */
	private void localImage()
	{
		try
		{
			// 本地文件处理(如果文件名中有空格需要用+来替代)  
			webView.loadUrl("file:///android_asset/icon.png");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/** 
	 * 显示本地网页文件 
	 */
	private void localHtml()
	{
		try
		{
			// 本地文件处理(如果文件名中有空格需要用+来替代)  
			webView.loadUrl("file:///android_asset/test.html");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/** 
	 * 显示本地图片和文字混合的Html内容 
	 */
	private void localHtmlImage()
	{
		try
		{
			String data = "测试本地图片和文字混合显示,这是<IMG src='\"file:///android_asset/icon.png\"/'>APK里的图片";
			// SDK1.5本地文件处理(不能显示图片)  
			// webView.loadData(URLEncoder.encode(data, encoding), mimeType,  
			// encoding);  
			// SDK1.6及以后版本  
			// webView.loadData(data, mimeType, encoding);  
			// 本地文件处理(能显示图片)  
			webView.loadDataWithBaseURL("about:blank", data, mimeType,
					encoding, "");
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.web_view, menu);
		return true;
	}

	public void showMessage(String msg)
	{
		Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
	}
}
